/**
 * 测试模型
 */
const BaseModel = require('./base_model.js');

class TestModel extends BaseModel {

    /**
     * 构造函数
     */
    constructor() {
        super();

        // 设置集合名
        this.setCollection('test_results');
    }

    /**
     * 插入测试结果
     * @param {String} testId 测试ID
     * @param {String} status 测试状态 (success/fail)
     * @param {Object} data 测试数据
     */
    async insertTestResult(testId, status, data = {}) {
        const result = {
            TEST_ID: testId,
            TEST_STATUS: status,
            TEST_DATA: data,
            TEST_ADD_TIME: this._timestamp,
            TEST_EDIT_TIME: this._timestamp,
            TEST_ADD_IP: this._ip,
        };

        return await this.insertOne(result);
    }

    /**
     * 获取最近测试结果
     * @param {String} testId 测试ID
     */
    async getTestResult(testId) {
        return await this.getOne({
            TEST_ID: testId
        }, {
            sort: {
                TEST_ADD_TIME: -1
            }
        });
    }

    /**
     * 获取所有测试结果
     * @param {Number} limit 限制数量
     */
    async getAllTestResults(limit = 50) {
        return await this.getAll({}, {
            sort: {
                TEST_ADD_TIME: -1
            },
            limit
        });
    }
}

module.exports = new TestModel(); 